package com.gitee.huanminabc.jmapstruct;

import org.mapstruct.InheritInverseConfiguration;

import java.util.List;
import java.util.stream.Stream;

/**
 * PO和VO互转的接口
 *
 * @date 2023年02月24日
 */
public interface BasePVConverter<PO,VO>  extends MapperConverter{

    /**
     * 映射同名属性
     */
    VO toVO(PO var1);

    /**
     * 反向，映射同名属性
     */
    @InheritInverseConfiguration(name = "toVO")
    PO fromVO(VO var1);

    /**
     * 映射同名属性，集合形式
     */
    List<VO> toVO(List<PO> var1);

    /**
     * 反向，映射同名属性，集合形式
     */
    List<PO> fromVO(List<VO> var1);

    /**
     * 映射同名属性，集合流形式
     */
    List<VO> toVO(Stream<PO> stream);

    /**
     * 反向，映射同名属性，集合流形式
     */
    List<PO> fromVO(Stream<VO> stream);
}
